import request from './request'

/**
 * 视频管理相关API
 */
export const videoApi = {
  /**
   * 获取视频列表
   * @param {Object} data - 查询参数
   * @param {number} data.page - 页码
   * @param {number} data.per_page - 每页数量
   * @param {string} data.status - 视频状态
   * @returns {Promise} 视频列表
   */
  getList(data) {
    return request({
      url: '/api/admin/videos',
      method: 'POST',
      data
    })
  },

  /**
   * 上传视频
   * @param {FormData} formData - 包含视频文件和相关信息的表单数据
   * @returns {Promise} 上传结果
   */
  upload(formData) {
    return request({
      url: '/api/admin/videos/upload',
      method: 'POST',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
  },

  /**
   * 获取视频详情
   * @param {number} videoId - 视频ID
   * @returns {Promise} 视频详情
   */
  getDetail(videoId) {
    return request({
      url: `/api/admin/videos/${videoId}`,
      method: 'POST',
      data: { videoId }
    })
  },

  /**
   * 更新视频
   * @param {number} videoId - 视频ID
   * @param {Object} data - 更新数据
   * @param {string} data.title - 视频标题
   * @param {string} data.description - 视频描述
   * @param {string} data.status - 视频状态
   * @returns {Promise} 更新结果
   */
  update(videoId, data) {
    return request({
      url: `/api/admin/videos/update/${videoId}`,
      method: 'POST',
      data
    })
  },

  /**
   * 审核视频
   * @param {number} videoId - 视频ID
   * @param {Object} data - 审核数据
   * @param {string} data.action - 审核动作 (approve/reject)
   * @param {string} data.reason - 审核原因
   * @returns {Promise} 审核结果
   */
  review(videoId, data) {
    return request({
      url: `/api/admin/videos/${videoId}/review`,
      method: 'POST',
      data
    })
  },

  /**
   * 生成视频封面
   * @param {number} videoId - 视频ID
   * @returns {Promise} 生成结果
   */
  generateCover(videoId) {
    return request({
      url: `/api/admin/videos/${videoId}/cover`,
      method: 'POST',
      data: { videoId }
    })
  },

  /**
   * 发布视频
   * @param {number} videoId - 视频ID
   * @returns {Promise} 发布结果
   */
  publish(videoId) {
    return request({
      url: `/api/admin/videos/${videoId}/publish`,
      method: 'POST',
      data: { videoId }
    })
  },

  /**
   * 取消发布视频
   * @param {number} videoId - 视频ID
   * @returns {Promise} 取消发布结果
   */
  unpublish(videoId) {
    return request({
      url: `/api/admin/videos/${videoId}/unpublish`,
      method: 'POST',
      data: { videoId }
    })
  },

  /**
   * 删除视频
   * @param {number} videoId - 视频ID
   * @returns {Promise} 删除结果
   */
  delete(videoId) {
    return request({
      url: `/api/admin/videos/delete/${videoId}`,
      method: 'POST',
      data: { videoId }
    })
  },

  /**
   * 批量审核视频
   * @param {Object} data - 批量审核数据
   * @param {number[]} data.video_ids - 视频ID数组
   * @param {string} data.action - 审核动作
   * @param {string} data.reason - 审核原因
   * @returns {Promise} 批量审核结果
   */
  batchReview(data) {
    return request({
      url: '/api/admin/videos/batch-review',
      method: 'POST',
      data
    })
  },

  /**
   * 批量发布视频
   * @param {Object} data - 批量发布数据
   * @param {number[]} data.video_ids - 视频ID数组
   * @returns {Promise} 批量发布结果
   */
  batchPublish(data) {
    return request({
      url: '/api/admin/videos/batch-publish',
      method: 'POST',
      data
    })
  }
}

export default videoApi